<?php

require_once ("MateriasBDFacade.php");

class Perfil {

    private $username = NULL;
    private $password = NULL;
    private $email = NULL;
    private $fechaNacimiento = NULL;
    private $seguridad_ID = NULL;
    private $muro_ID = NULL;
    private $nombre = NULL;
    private $apellido = NULL;
    private $es_Admin = NULL;
    private $estado = NULL;

    function __construct() {
        if (func_num_args() == 1) {
            $fachadaBD = MateriasBDFacade::getInstance();
            if (!($attributes = $fachadaBD->existePerfil(func_get_arg(0)))) {
                die("ERROR: Perfil constructor: instance doesn't exists.");
            } else {
                $this->username = $attributes[0];
                $this->password = $attributes[1];
                $this->email = $attributes[2];
                $this->fechaNacimiento = $attributes[3];
                $this->seguridad_ID = $attributes[4];
                $this->muro_ID = $attributes[5];
                $this->nombre = $attributes[6];
                $this->apellido = $attributes[7];
                $this->es_Admin = $attributes[8];
                $this->estado = $attributes[9];
            }
        } else if (func_num_args() == 0) {
            //Trivial constructor
        } else {
            die("ERROR: Perfil constructor: wrong number of arguments.");
        }
    }

    public function existe() {
        $P = PerfilMapper::getInstance();
        if ($P->existePerfil($this->user))
            return TRUE;
        return FALSE;
    }

    public function setDatosPerfil($password, $nombre, $apellido, $correo, $fecha_nac) {
        $this->password = $password;
        $this->nombre = $nombre;
        $this->apellido = $apellido;
        $this->correo = $correo;
        $this->fecha_nac = $fecha_nac;
    }

    public function save() {
        $P = PerfilMapper::getInstance();
        if ($P->salvarPerfil($this))
            return TRUE;
        return FALSE;
    }

    public function getUsername() {
        return $this->user;
    }

    public function getPassword() {
        return $this->password;
    }

    public function getNombre() {
        return $this->nombre;
    }

    public function getApellido() {
        return $this->apellido;
    }

    public function getCorreo() {
        return $this->correo;
    }

    public function getFecha_nac() {
        return $this->fecha_nac;
    }

    public function setUsername($username) {
        $this->user = $username;
    }

    public function setPassword($password) {
        $this->password = $password;
    }

    public function setNombre($nombre) {
        $this->nombre = $nombre;
    }

    public function setApellido($apellido) {
        $this->apellido = $apellido;
    }

    public function setCorreo($correo) {
        $this->correo = $correo;
    }

    public function setFecha_nac($fecha_nac) {
        $this->fecha_nac = $fecha_nac;
    }

}

?>
